1. Field of the Invention
The present invention relates to network systems, and particularly to public network systems, such as the Internet. More particularly, the invention relates to methods which improve the caching of streaming multimedia data (e.g., audio and video data) from a content provider over a network to a client's computer.
2. Description of the Related Art
Generally, in a caching architectural system, the popularity rank of a media clip at an origin server is dynamically changed as the media clients' preference changes over time. As the popularity rank of a media clip changes, this change is reflected in a change in the number of cached copies of segments stored among a plurality of network distributed proxy servers (NDPS) in the network. For example, when a media clip's popularity rank rises or increases, the number of cached segments in the distribution set increases. Each NDPS maintains a local hit count for each media clip and periodically reports the local hit count to the origin server. The local hit count is a measure of a local preference or popularity of the media clip. The origin server combines the local hit counts received from each proxy and determines whether the popularity rank of a media clip has changed. If the origin server determines that the rank of a media clip has changed, the change should be reflected throughout the network by changing the data layout. If the media clip has not been distributed, a popularity rank change is easily made at the origin server. Upon distributing the media clip from the origin server, the distribution carries the up-to-date rank information. Specifically, the NDPSs use the updated rank information to calculate revised segment caching probabilities. That is, each proxy re-computes the caching probabilities to determine whether or not to cache each segment.
In the case where a media clip has already been distributed and stored at the NDPSs, adjusting rank information at the origin server is inadequate. In this case, the data layout throughout the network (i.e., at each NDPS) must be modified according to the new rank information. If the popularity rank of a media clip goes up, the number of cached segments should be increased in the network. In the same manner, if the popularity rank of the clip goes down, the number of cached segments should be decreased.
One simple method to deal with rank changes is to redistribute the entire clip and rebuild a new data layout. Upon redistributing the clip from the origin server, each proxy clears the current data layout of the clip and builds a new data layout based on the new rank information. There are however, drawbacks associated with the simple redistribution method. One drawback is that the origin server has to redistribute the entire clip whenever the rank of the clip is changed. This generates a considerable amount of network traffic and origin server load. Another drawback concerns the cache map inconsistency problem. As previously stated, each proxy clears the current cache layout for the clip and builds a new cache layout. Thus, it takes time for each proxy to build a new cache layout and to converge to a new consistent cache map for the clip. While the new cache layout is being built and settling, there is an unavoidable window of time during which the origin server cache map is inconsistent or incomplete. This inconsistency can only be addressed by re-directing client requests for the clip from the NDPSs to the origin server until the new cache map is built and settles. A third drawback is the triggering of numerous Internet cache protocol (ICP) message exchanges. The redistribution of a clip introduces the cache layout changes at the NDPSs at the same time. As a result, the ICP protocol generates numerous message exchanges to build a new cache map that reflects the cache layout changes.
Based on the foregoing, there is a need for a system and method for implementing rank or popularity changes of media clips to be used in association with the present invention which overcomes the problems associated with prior art methods of media clip distribution and redistribution.